#ifndef DEFINICOES_H_
#define DEFINICOES_H_


//Tipos de Tokens 
enum TIPOS_TOKENS {
	INTEIRO,
	IDENTIFICADOR,
	PAL_RESERVADA,
	SIMBOLO,
	SIMBOLO_COMP,
	BOLEANO,
	ERRO,
	TERMINO,
	IGNORA
};

enum CONSTANTES{
	NEGATIVO,
	N_SIMBOLOS = 17,
	N_RESERVADAS = 25,
	MAX_CHAR = 32
};

enum PAL_RESERVADAS{
	FALSE, TRUE, PROGRAM, BEGIN, END, LABEL, TYPE, ARRAY, OF, VAR, PROCEDURE,
	FUNCTION, IF, THEN, ELSE, WHILE, DO, OR, AND, DIV, NOT, CASE, RECORD, USES, INTEGER,
	READ, WRITE
};

enum NAO_TERMINAIS{
	PROGRAMA,
	BLOCO,
	TIPO,
	PARAMETROS_FORMAIS,
	COMANDO,
	EXPRESSAO,
	EXPRESSAO_SIMPLES,
	TERMO,
	FATOR
};

enum SIMBOLOS{
	MENOS,
	PONTO,
	VIRGULA,
	PONTO_VIRGULA,
	ABRE_PARENTESES,
	FECHA_PARENTESES,
	DOIS_PONTOS,
	IGUAL,
	DIFERENTE,
	MENOR,
	MAIOR,
	MAIS,
	VEZES,
	ABRE_COLCHETES,
	FECHA_COLCHETES,
	RECEBE,
	PONTO_PONTO
};

enum ERROS{
	SEM_ERROS,
	TOKEN_INVALIDO,
	DESCONHECIDO,
	ERRO_ID_INVALIDO,
	ERRO_SIMBOLO_INV
};

#endif /*DEFINICOES_H_*/
